# LITERAL1 specifies constants

HIGH	LITERAL1	Constants
LOW	LITERAL1	Constants
INPUT	LITERAL1	Constants
INPUT_PULLUP	LITERAL1	Constants
OUTPUT	LITERAL1	Constants
DEC	LITERAL1	Serial_Print
BIN	LITERAL1	Serial_Print
HEX	LITERAL1	Serial_Print
OCT	LITERAL1	Serial_Print
PI	LITERAL1
HALF_PI	LITERAL1
TWO_PI	LITERAL1
LSBFIRST	LITERAL1	ShiftOut
MSBFIRST	LITERAL1	ShiftOut
CHANGE	LITERAL1	AttachInterrupt
FALLING	LITERAL1	AttachInterrupt
RISING	LITERAL1	AttachInterrupt
DEFAULT	LITERAL1	AnalogReference
EXTERNAL	LITERAL1	AnalogReference
INTERNAL	LITERAL1	AnalogReference
INTERNAL1V1	LITERAL1	AnalogReference
INTERNAL2V56	LITERAL1	AnalogReference

# KEYWORD1 specifies datatypes and C/C++ keywords

boolean	KEYWORD1	BooleanVariables
break	KEYWORD1	Break
byte	KEYWORD1	Byte
case	KEYWORD1	SwitchCase
char	KEYWORD1	Char
class	KEYWORD1
const	KEYWORD1	Const
continue	KEYWORD1	Continue
default	KEYWORD1	SwitchCase	
do	KEYWORD1	DoWhile
double	KEYWORD1	Double
else	KEYWORD1	Else
false	KEYWORD1	Constants
float	KEYWORD1	Float
for	KEYWORD1	For
if	KEYWORD1	If
int	KEYWORD1	Int
long	KEYWORD1	Long
new	KEYWORD1	
null	KEYWORD1	
private	KEYWORD1
protected	KEYWORD1	
public	KEYWORD1	
return	KEYWORD1	Return	
short	KEYWORD1
signed	KEYWORD1
static	KEYWORD1	Static
String	KEYWORD1	String	
switch	KEYWORD1	SwitchCase
this	KEYWORD1	
throw	KEYWORD1	
try	KEYWORD1	
true	KEYWORD1	
unsigned	KEYWORD1
void	KEYWORD1	Void
while	KEYWORD1	While
word	KEYWORD1	Word

# operators aren't highlighted, but may have documentation

+=		IncrementCompound
+		Arithmetic
[]		arrayaccess
=		assign
&		BitwiseAnd
|		BitwiseAnd
,		
//		Comments
?:		
{}		Braces
--		Increment
/		Arithmetic
/*		Comments
.		dot
==		
<		greaterthan
<=		greaterthanorequalto
++		Increment
!=		inequality
<<		Bitshift
<		lessthan
<=		lessthanorequalto
&&		Boolean
!		Boolean
||		Boolean
-		Arithmetic
%		Modulo
*		Arithmetic
()		parentheses
>>		Bitshift
;		SemiColon
-=		IncrementCompound

# these are datatypes, but we've also defined functions to cast to them

boolean	KEYWORD2	boolean_
byte	KEYWORD2	byte_
char	KEYWORD2	char_
float	KEYWORD2	float_
int	KEYWORD2	int_
long	KEYWORD2	long_
word	KEYWORD2	word_

# KEYWORD2 specifies methods and functions

abs	KEYWORD2	Abs
acos	KEYWORD2	ACos
asin	KEYWORD2	ASin
atan	KEYWORD2	ATan
atan2	KEYWORD2	ATan2
ceil	KEYWORD2	Ceil
constrain	KEYWORD2	Constrain
cos	KEYWORD2	Cos
degrees	KEYWORD2
exp	KEYWORD2	Exp
floor	KEYWORD2	Floor
log	KEYWORD2	Log
map	KEYWORD2	Map
max	KEYWORD2	Max
min	KEYWORD2	Min
radians	KEYWORD2
random	KEYWORD2	Random
randomSeed	KEYWORD2	RandomSeed
round	KEYWORD2
sin	KEYWORD2	Sin
sq	KEYWORD2	Sq
sqrt	KEYWORD2	Sqrt
tan	KEYWORD2	Tan

bitRead	KEYWORD2	BitRead
bitWrite	KEYWORD2	BitWrite
bitSet	KEYWORD2	BitSet
bitClear	KEYWORD2	BitClear
bit	KEYWORD2	Bit
highByte	KEYWORD2	HighByte
lowByte	KEYWORD2	LowByte

analogReference	KEYWORD2	AnalogReference
analogRead	KEYWORD2	AnalogRead
analogWrite	KEYWORD2	AnalogWrite
attachInterrupt	KEYWORD2	AttachInterrupt
detachInterrupt	KEYWORD2	DetachInterrupt
delay	KEYWORD2	Delay
delayMicroseconds	KEYWORD2	DelayMicroseconds
digitalWrite	KEYWORD2	DigitalWrite
digitalRead	KEYWORD2	DigitalRead
interrupts	KEYWORD2
millis	KEYWORD2	Millis
micros	KEYWORD2	Micros
noInterrupts	KEYWORD2	NoInterrupts
noTone	KEYWORD2	NoTone
pinMode	KEYWORD2	PinMode
pulseIn	KEYWORD2	PulseIn
shiftIn	KEYWORD2	ShiftIn
shiftOut	KEYWORD2	ShiftOut
tone	KEYWORD2	Tone

Serial	KEYWORD3	Serial
Serial1	KEYWORD3	Serial
Serial2	KEYWORD3	Serial
Serial3	KEYWORD3	Serial
begin	KEYWORD2	Serial_Begin
end	KEYWORD2	Serial_End
peek	KEYWORD2	Serial_Peek
read	KEYWORD2	Serial_Read
print	KEYWORD2	Serial_Print
println	KEYWORD2	Serial_Println
available	KEYWORD2	Serial_Available
flush	KEYWORD2	Serial_Flush
setTimeout	KEYWORD2
find	KEYWORD2
findUntil	KEYWORD2
parseInt	KEYWORD2
parseFloat	KEYWORD2
readBytes	KEYWORD2
readBytesUntil	KEYWORD2

# USB-related keywords

Keyboard	KEYWORD3
Mouse	KEYWORD3
press	KEYWORD2
release	KEYWORD2
releaseAll	KEYWORD2
accept	KEYWORD2
click	KEYWORD2
move	KEYWORD2
isPressed	KEYWORD2

setup	KEYWORD3	Setup
loop	KEYWORD3	Loop

# language keywords - Arduino doesn't define these, but probably should
volatile	KEYWORD1
int8_t	KEYWORD1
uint8_t	KEYWORD1
int16_t	KEYWORD1
uint16_t	KEYWORD1
int32_t	KEYWORD1
uint32_t	KEYWORD1

# removed by Arduino 1.0, but still in Teensyduino
BYTE	LITERAL1	Serial_Print

# Teensyduino extras
elapsedMillis	KEYWORD2
elapsedMicros	KEYWORD2
readString	KEYWORD2
readStringUntil	KEYWORD2
analogReadRes	KEYWORD2
analogWriteRes	KEYWORD2
touchRead	KEYWORD2
Teensy3Clock	KEYWORD2

# String functions
copy	KEYWORD2
append	KEYWORD2
concat	KEYWORD2
compareTo	KEYWORD2
equals	KEYWORD2
equalsIgnoreCase	KEYWORD2
startsWith	KEYWORD2
endsWith	KEYWORD2
charAt	KEYWORD2
setCharAt	KEYWORD2
getBytes	KEYWORD2
toCharArray	KEYWORD2
indexOf	KEYWORD2
lastIndexOf	KEYWORD2
substring	KEYWORD2
replace	KEYWORD2
toLowerCase	KEYWORD2
toUpperCase	KEYWORD2
trim	KEYWORD2
toInt	KEYWORD2

PIN_A0	LITERAL1
PIN_A1	LITERAL1
PIN_A2	LITERAL1
PIN_A3	LITERAL1
PIN_A4	LITERAL1
PIN_A5	LITERAL1
PIN_A6	LITERAL1
PIN_A7	LITERAL1
PIN_B0	LITERAL1
PIN_B1	LITERAL1
PIN_B2	LITERAL1
PIN_B3	LITERAL1
PIN_B4	LITERAL1
PIN_B5	LITERAL1
PIN_B6	LITERAL1
PIN_B7	LITERAL1
PIN_C0	LITERAL1
PIN_C1	LITERAL1
PIN_C2	LITERAL1
PIN_C3	LITERAL1
PIN_C4	LITERAL1
PIN_C5	LITERAL1
PIN_C6	LITERAL1
PIN_C7	LITERAL1
PIN_D0	LITERAL1
PIN_D1	LITERAL1
PIN_D2	LITERAL1
PIN_D3	LITERAL1
PIN_D4	LITERAL1
PIN_D5	LITERAL1
PIN_D6	LITERAL1
PIN_D7	LITERAL1
PIN_E0	LITERAL1
PIN_E1	LITERAL1
PIN_E2	LITERAL1
PIN_E3	LITERAL1
PIN_E4	LITERAL1
PIN_E5	LITERAL1
PIN_E6	LITERAL1
PIN_E7	LITERAL1
PIN_F0	LITERAL1
PIN_F1	LITERAL1
PIN_F2	LITERAL1
PIN_F3	LITERAL1
PIN_F4	LITERAL1
PIN_F5	LITERAL1
PIN_F6	LITERAL1
PIN_F7	LITERAL1
PIN_SS	LITERAL1
PIN_SCLK	LITERAL1
PIN_MOSI	LITERAL1
PIN_MISO	LITERAL1
PIN_LED	LITERAL1
ANALOG_0	LITERAL1	AnalogRead
ANALOG_1	LITERAL1	AnalogRead
ANALOG_2	LITERAL1	AnalogRead
ANALOG_3	LITERAL1	AnalogRead
ANALOG_4	LITERAL1	AnalogRead
ANALOG_5	LITERAL1	AnalogRead
ANALOG_6	LITERAL1	AnalogRead
ANALOG_7	LITERAL1	AnalogRead
ANALOG_1_TO_0_X10	LITERAL1	AnalogRead
ANALOG_1_TO_0_X200	LITERAL1	AnalogRead
ANALOG_3_TO_2_X10	LITERAL1	AnalogRead
ANALOG_3_TO_2_X200	LITERAL1	AnalogRead
ANALOG_0_TO_1	LITERAL1	AnalogRead
ANALOG_2_TO_1	LITERAL1	AnalogRead
ANALOG_3_TO_1	LITERAL1	AnalogRead
ANALOG_4_TO_1	LITERAL1	AnalogRead
ANALOG_5_TO_1	LITERAL1	AnalogRead
ANALOG_6_TO_1	LITERAL1	AnalogRead
ANALOG_7_TO_1	LITERAL1	AnalogRead
ANALOG_0_TO_2	LITERAL1	AnalogRead
ANALOG_1_TO_2	LITERAL1	AnalogRead
ANALOG_3_TO_2	LITERAL1	AnalogRead
ANALOG_4_TO_2	LITERAL1	AnalogRead
ANALOG_5_TO_2	LITERAL1	AnalogRead
ANALOG_1_1V	LITERAL1	AnalogRead
ANALOG_0V	LITERAL1	AnalogRead

# Serial Port
Uart	KEYWORD3

# USB Serial
send_now	KEYWORD2
baud	KEYWORD2
stopbits	KEYWORD2
paritytype	KEYWORD2
numbits	KEYWORD2
dtr	KEYWORD2
rts	KEYWORD2

# USB Keyboard
Keyboard	KEYWORD3
write_unicode	KEYWORD2
set_modifier	KEYWORD2
set_key1	KEYWORD2
set_key2	KEYWORD2
set_key3	KEYWORD2
set_key4	KEYWORD2
set_key5	KEYWORD2
set_key6	KEYWORD2
set_media	KEYWORD2
press	KEYWORD2
release	KEYWORD2
releaseAll	KEYWORD2
MODIFIERKEY_CTRL	LITERAL1
MODIFIERKEY_SHIFT	LITERAL1
MODIFIERKEY_ALT	LITERAL1
MODIFIERKEY_GUI	LITERAL1
MODIFIERKEY_LEFT_CTRL	LITERAL1
MODIFIERKEY_LEFT_SHIFT	LITERAL1
MODIFIERKEY_LEFT_ALT	LITERAL1
MODIFIERKEY_LEFT_GUI	LITERAL1
MODIFIERKEY_RIGHT_CTRL	LITERAL1
MODIFIERKEY_RIGHT_SHIFT	LITERAL1
MODIFIERKEY_RIGHT_ALT	LITERAL1
MODIFIERKEY_RIGHT_GUI	LITERAL1
KEY_MEDIA_VOLUME_INC	LITERAL1
KEY_MEDIA_VOLUME_DEC	LITERAL1
KEY_MEDIA_MUTE	LITERAL1
KEY_MEDIA_PLAY_PAUSE	LITERAL1
KEY_MEDIA_NEXT_TRACK	LITERAL1
KEY_MEDIA_PREV_TRACK	LITERAL1
KEY_MEDIA_STOP	LITERAL1
KEY_MEDIA_EJECT	LITERAL1
KEY_A	LITERAL1
KEY_B	LITERAL1
KEY_C	LITERAL1
KEY_D	LITERAL1
KEY_E	LITERAL1
KEY_F	LITERAL1
KEY_G	LITERAL1
KEY_H	LITERAL1
KEY_I	LITERAL1
KEY_J	LITERAL1
KEY_K	LITERAL1
KEY_L	LITERAL1
KEY_M	LITERAL1
KEY_N	LITERAL1
KEY_O	LITERAL1
KEY_P	LITERAL1
KEY_Q	LITERAL1
KEY_R	LITERAL1
KEY_S	LITERAL1
KEY_T	LITERAL1
KEY_U	LITERAL1
KEY_V	LITERAL1
KEY_W	LITERAL1
KEY_X	LITERAL1
KEY_Y	LITERAL1
KEY_Z	LITERAL1
KEY_1	LITERAL1
KEY_2	LITERAL1
KEY_3	LITERAL1
KEY_4	LITERAL1
KEY_5	LITERAL1
KEY_6	LITERAL1
KEY_7	LITERAL1
KEY_8	LITERAL1
KEY_9	LITERAL1
KEY_0	LITERAL1
KEY_ENTER	LITERAL1
KEY_ESC	LITERAL1
KEY_BACKSPACE	LITERAL1
KEY_TAB	LITERAL1
KEY_SPACE	LITERAL1
KEY_MINUS	LITERAL1
KEY_EQUAL	LITERAL1
KEY_LEFT_BRACE	LITERAL1
KEY_RIGHT_BRACE	LITERAL1
KEY_BACKSLASH	LITERAL1
KEY_NON_US_NUM	LITERAL1
KEY_SEMICOLON	LITERAL1
KEY_QUOTE	LITERAL1
KEY_TILDE	LITERAL1
KEY_COMMA	LITERAL1
KEY_PERIOD	LITERAL1
KEY_SLASH	LITERAL1
KEY_CAPS_LOCK	LITERAL1
KEY_F1	LITERAL1
KEY_F2	LITERAL1
KEY_F3	LITERAL1
KEY_F4	LITERAL1
KEY_F5	LITERAL1
KEY_F6	LITERAL1
KEY_F7	LITERAL1
KEY_F8	LITERAL1
KEY_F9	LITERAL1
KEY_F10	LITERAL1
KEY_F11	LITERAL1
KEY_F12	LITERAL1
KEY_PRINTSCREEN	LITERAL1
KEY_SCROLL_LOCK	LITERAL1
KEY_PAUSE	LITERAL1
KEY_INSERT	LITERAL1
KEY_HOME	LITERAL1
KEY_PAGE_UP	LITERAL1
KEY_DELETE	LITERAL1
KEY_END	LITERAL1
KEY_PAGE_DOWN	LITERAL1
KEY_RIGHT	LITERAL1
KEY_LEFT	LITERAL1
KEY_DOWN	LITERAL1
KEY_UP	LITERAL1
KEY_NUM_LOCK	LITERAL1
KEYPAD_SLASH	LITERAL1
KEYPAD_ASTERIX	LITERAL1
KEYPAD_MINUS	LITERAL1
KEYPAD_PLUS	LITERAL1
KEYPAD_ENTER	LITERAL1
KEYPAD_1	LITERAL1
KEYPAD_2	LITERAL1
KEYPAD_3	LITERAL1
KEYPAD_4	LITERAL1
KEYPAD_5	LITERAL1
KEYPAD_6	LITERAL1
KEYPAD_7	LITERAL1
KEYPAD_8	LITERAL1
KEYPAD_9	LITERAL1
KEYPAD_0	LITERAL1
KEYPAD_PERIOD	LITERAL1
KEY_UP_ARROW	LITERAL1
KEY_DOWN_ARROW	LITERAL1
KEY_LEFT_ARROW	LITERAL1
KEY_RIGHT_ARROW	LITERAL1
KEY_RETURN	LITERAL1
KEY_LEFT_CTRL	LITERAL1
KEY_LEFT_SHIFT	LITERAL1
KEY_LEFT_ALT	LITERAL1
KEY_LEFT_GUI	LITERAL1
KEY_RIGHT_CTRL	LITERAL1
KEY_RIGHT_SHIFT	LITERAL1
KEY_RIGHT_ALT	LITERAL1
KEY_RIGHT_GUI	LITERAL1

# USB Mouse
Mouse	KEYWORD3
move	KEYWORD2
click	KEYWORD2
scroll	KEYWORD2
set_buttons	KEYWORD2
isPressed	KEYWORD2
MOUSE_LEFT	LITERAL1
MOUSE_MIDDLE	LITERAL1
MOUSE_RIGHT	LITERAL1
MOUSE_ALL	LITERAL1

# USB Joystick
Joystick	KEYWORD3
button	KEYWORD2
X	KEYWORD2
Y	KEYWORD2
position	KEYWORD2
Z	KEYWORD2
Zrotate	KEYWORD2
sliderLeft	KEYWORD2
sliderRight	KEYWORD2
slider	KEYWORD2
hat	KEYWORD2
useManualSend	KEYWORD2

# USB Disk
Disk	KEYWORD3
claim	KEYWORD2
readSector	KEYWORD2
writeSector	KEYWORD2
release	KEYWORD2
releaseReadOnly	KEYWORD2

# USB MIDI
usbMIDI	KEYWORD3
sendNoteOff	KEYWORD2
sendNoteOn	KEYWORD2
sendPolyPressure	KEYWORD2
sendControlChange	KEYWORD2
sendProgramChange	KEYWORD2
sendAfterTouch	KEYWORD2
sendPitchBend	KEYWORD2
sendSysEx	KEYWORD2
analog2velocity	KEYWORD2
getType	KEYWORD2
getChannel	KEYWORD2
getData1	KEYWORD2
getData2	KEYWORD2
getSysExArray	KEYWORD2
setHandleNoteOff	KEYWORD2
setHandleNoteOn	KEYWORD2
setHandleVelocityChange	KEYWORD2
setHandleControlChange	KEYWORD2
setHandleProgramChange	KEYWORD2
setHandleAfterTouch	KEYWORD2
setHandlePitchChange	KEYWORD2
setHandlePitchChange	KEYWORD2
NoteOff	LITERAL1
NoteOn	LITERAL1
AfterTouchPoly	LITERAL1
ControlChange	LITERAL1
ProgramChange	LITERAL1
AfterTouchChannel	LITERAL1
PitchBend	LITERAL1
SystemExclusive	LITERAL1

# USB RawHID
RawHID KEYWORD3
recv	KEYWORD2
send	KEYWORD2

# USB Flight Sim Controls
FlightSim	KEYWORD3
FlightSimCommand	KEYWORD2
FlightSimInteger	KEYWORD2
FlightSimFloat	KEYWORD2
FlightSimElapsedFrames	KEYWORD2
onChange	KEYWORD2
update	KEYWORD2
isEnabled	KEYWORD2
getFrameCount	KEYWORD2
XPlaneRef	KEYWORD2
